package middleware

import (
	"server/a0"

	"github.com/gin-gonic/gin"
)

func A查初始化() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 1. 定义不需要检查的白名单路径
		// 注意：这里的路径是相对路径，不包含前面的 RouterGroup
		whitelistPaths := map[string]bool{
			"/init/initdb":  true,
			"/init/checkdb": true,
		}

		// 2. 获取当前请求的完整路径
		currentPath := c.FullPath()

		// 3. 如果请求路径在白名单中，则直接放行
		if whitelistPaths[currentPath] {
			c.Next()
			return
		}

		// 4. 对于非白名单路径，检查数据库连接
		if a0.A_DB == nil {
			// 数据库未初始化，返回提示信息并中断请求
			message := "数据库未初始化，请先访问 /init/initdb 进行初始化"
			// a0.A_LOG.Warn(message)
			a0.OkWithDetailed(gin.H{"needInit": true}, message, c)
			// 中断后续处理
			c.Abort()
			return
		}
		//放行
		c.Next()
	}
}
